The present invention concerns a method and device for transmitting data, in particular video data. It concerns, in particular, video data transmission implementing error control by data retransmission.
In the case of video transmission by packets over a network in which the RTP protocol is used (RTP being an acronym for “Real-Time Transport Protocol”), the network is not reliable since it does not provide stable transmission conditions and losses may occur.
In the context of H.264 video coding or SVC (acronym for “Scalable Video Coding”), the video transport unit is the NAL (acronym for “network abstraction layer”). The NAL may be viewed as a container grouping together the video data behind a header which gives a description of those data.
The IETF (acronym for “Internet Engineering Task Force”) has defined RTP payloads for transporting AVC NALs (AVC being an acronym for “Advanced Video Coding”) as set out, for example, in the paper by S. Wenger et al., “RTP payload format for H.264 video”, of February 2005.
This payload format was then extended for SVC as set out, for example, in the paper by S. Wenger et al., “RTP payload format for SVC video” of Jul. 9, 2007. In this context, four types of payload have been defined:                single NAL unit packet,        single time aggregation packet, or STAP,        multiple time aggregation packet, or MTAP,        fragmented unit packet, or FU.        
Single NAL packets have been defined for backward compatibility with prior standards but their use is not recommended. It is assumed, in what follows, that this type of packet is not used. The other types of payload are described with reference to FIG. 1, in which a video data stream 105 is represented in the top line and in the bottom line that video stream is represented encapsulated into packets 110 to 130.
As can be seen, an STAP packet contains one NAL (the case of packet 115) or several NALs (the case of packet 110) which correspond at the same moment, for example to layers, or slices, that is to say portions of the same frame that are independently decodable from each other. An MTAP packet 130 contains several NALs which correspond to different moments. A packet FU 120 or 125 is used to transport NALs which cannot be transported by a single packet, for example due to a packet size limitation. The MTU (acronym for “Maximum Transfer Unit”) defines the maximum packet size which ensures that the packet will not be fragmented by the network.
Error control mechanisms based on retransmission are generally grouped together under the name “ARQ” (acronym for “Automatic Repeat Request”). ARQ is a very effective tool for finding lost data. It is based on the detection, at the client, of losses and the transmission of an acknowledgement of receipt, or ACK (abbreviation of “acknowledgement”), or of an acknowledgement of non-receipt, or NACK (abbreviation for “Non ACK”). The server retransmits the non-received data that are the subject of a NACK.
However, this mechanism was designed for applications without time constraints, such as those for file transfer. It is generally accepted that this type of mechanism is too slow for applications which do not allow delay, such as videoconference or very short delays, such as video on demand. The delay induced by ARQ is the combination of two delays. The first depends on the network and it is regarded here as not being possible to reduce. It corresponds to the transmission time lapse of the NACK and to that of the retransmission of the lost packet. The second is linked to the delay in detecting the data loss. When RTP packets are transmitted over the network, a sequential number is inserted into each packet. The successively transmitted packets thus have successive numbers.
The client detects losses when it identifies a gap in the successively received numbers. Thus, when a packet is lost, the client must wait to receive the packet following the one lost in order to detect the loss of the packet. This delay further increases when several successive packets are lost.
Several solutions have been proposed to improve the reactivity of ARQs by reducing this second delay. The document U.S. Pat. No. 7,124,343 describes a server which transmits a packet to a client over a first link and an indicator of transmission of that packet over a second link. When it receives the indicator, the client launches a time measurement with which it estimates the time lapse for arrival of the packet. When the client considers that the packet should already have arrived, it transmits a NACK to the server. However, this solution imposes the use of two links, or channels, which is not always feasible and reduces the bandwidth available for the video data.
The document US 2004 0,013,114 describes client/server applications in which a time slot is allocated to the server to transmit packets. The server retransmits all these packets if it receives a NACK concerning one of these packets. However, this solution also reduces the bandwidth available for the video data.